#include"main.h"
//#include<stdio.h>
//#include<string.h>
//char s[100][100] = { 0 };
//int zi(char a[100], char b[100], char re[100])
//{
//	int dp[100][100] = { 0 };
//	int i, j;
//	for (i = 0; a[i] != '\0'; i++)
//	{
//		for (j = 0; b[j] != '\0'; j++)
//		{
//			if (i == 0 || j == 0)
//			{
//				if (a[i] == b[j])
//				{
//					dp[i][j] = 1;
//				}
//				else
//				{
//					dp[i][j] = 0;
//				}
//			}
//			else if (a[i] == b[j])
//			{
//				dp[i][j] = dp[i - 1][j - 1] + 1;
//			}
//			else
//			{
//				dp[i][j] = 0;
//			}
//		}
//	}
//	int max = 0;
//	int x = 0, y = 0;
//	for (i = 0; a[i] != '\0'; i++)
//	{
//		for (j = 0; b[j] != '\0'; j++)
//		{
//			if (dp[i][j] > max)
//			{
//				max = dp[i][j];
//				x = i;
//				y = j;
//			}
//		}
//	}
//	re[dp[x][y]] = '\0';
//	int k;
//	for (k = dp[x][y] - 1; k >= 0; k--)
//	{
//		re[k] = a[x - (dp[x][y] - k) + 1];
//	}
//	return dp[x][y];
//}
//int main()
//{
//	int t = 0;
//	scanf("%d", &t);
//	int i;
//	for (i = 0; i < t; i++)
//	{
//		int n;
//		scanf("%d", &n);
//		getchar();
//		int j = 0;
//		for (j = 0; j < n; j++)
//		{
//			gets(s[j]);
//		}
//		char re[100] = { 0 };
//		int cnt = 0;
//		cnt = zi(s[0], s[1], re);
//		if (cnt == 1)
//		{
//			int len = strlen(s[0]);
//			int t;
//			for (t = 0; t < len / 2; t++)
//			{
//				char temp = 0;
//				temp = s[0][t];
//				s[0][t] = s[0][len - 1 - t];
//				s[0][len - 1 - t] = temp;
//			}
//			cnt = zi(s[0], s[1], re);
//		}
//		for (j = 2; j < n; j++)
//		{
//			char cpy[100] = { 0 };
//			int k;
//			for (k = 0; re[k] != '\0'; k++)
//			{
//				cpy[k] = re[k];
//			}
//			cnt = zi(re, s[j], re);
//			if (cnt == 1)
//			{
//				int len = strlen(cpy);
//				int t;
//				for (t = 0; t < len / 2; t++)
//				{
//					char temp = 0;
//					temp = cpy[t];
//					cpy[t] = cpy[len - 1 - t];
//					cpy[len - 1 - t] = temp;
//				}
//				cnt = zi(cpy, s[j], re);
//			}
//		}
//		printf("%d\n", cnt);
//	}
//	return 0;
//}